////////////////////////////////////////////////////////////////////////////////////////////////////
/// @file   CollabRCBotUnitTests\RandomMock.h
///
/// @brief  Defines mock objects for the rand() function for use by the test suite
////////////////////////////////////////////////////////////////////////////////////////////////////
#include <cxxtest/TestSuite.h>
#include "../CollabRCBot/mocks.h"
#pragma once


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @class  MaxRandom
///
/// @brief  Defines a mock object for the global function rand() which
///         always produces the maximum random value, RAND_MAX.
///
/// @author Matthew P. Del Buono
/// @date   12/21/2009
////////////////////////////////////////////////////////////////////////////////////////////////////
class MaxRandom : public T::Base_rand
{
public:
    inline int rand() { return RAND_MAX; }
};

////////////////////////////////////////////////////////////////////////////////////////////////////
/// @class  MinRandom
///
/// @brief  Defines a mock object for the global function rand() which
///         always produces the maximum random value, 0.
///
/// @author Matthew P. Del Buono
/// @date   12/21/2009
////////////////////////////////////////////////////////////////////////////////////////////////////
class MinRandom : public T::Base_rand
{
public:
    inline int rand() { return 0; }
};